use std::{collections::HashMap, io::Write};

use aok::{Result, OK};
use prost::Message;
use test_rust::api;

fn main() -> Result<()> {
  let dir = std::env::current_dir()?;

  let sign2 = api::Sign2 {
    a: HashMap::from([
      ("".to_string(), "empty_v1".to_string()),
      ("k1_empty".to_string(), "".to_string()),
      ("k2_empty".to_string(), "".to_string()),
      ("k3_v3".to_string(), "v3".to_string()),
    ]),
  };
  ifs::w(dir.join("out/sign2"))?.write_all(&sign2.encode_to_vec())?;

  let sign3 = api::Sign3 {
    a: HashMap::from([
      // ("".to_string(), "empty_v1".to_string()),
      // ("k1_empty".to_string(), "".to_string()),
      ("k2_empty".to_string(), "".to_string()),
      ("k3_v3".to_string(), "v3".to_string()),
    ]),
    b: vec![12, 343],
  };
  ifs::w(dir.join("out/sign3"))?.write_all(&sign3.encode_to_vec())?;

  let sign5 = api::Sign5 {
    a: HashMap::from([
      // ("".to_string(), "empty_v1".to_string()),
      // ("k1_empty".to_string(), "".to_string()),
      ("k2_empty".to_string(), "".to_string()),
      ("k3_v3".to_string(), "v3".to_string()),
    ]),
    b: 12345,
  };
  ifs::w(dir.join("out/sign5"))?.write_all(&sign5.encode_to_vec())?;
  OK
}
